package com.car.rental.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.car.rental.common.core.response.ResponseResult;
import com.car.rental.order.dto.OrderCreateDTO;
import com.car.rental.order.vo.OrderDetailVO;

public interface OrderService {
    /**
     * 创建订单
     */
    ResponseResult<String> createOrder(Long userId, OrderCreateDTO createDTO);
    
    /**
     * 取消订单
     */
    ResponseResult<Void> cancelOrder(Long userId, String orderNo);
    
    /**
     * 获取订单详情
     */
    ResponseResult<OrderDetailVO> getOrderDetail(Long userId, String orderNo);
    
    /**
     * 获取用户订单列表
     */
    ResponseResult<Page<OrderDetailVO>> getUserOrders(Long userId, Integer status, Integer current, Integer size);
    
    /**
     * 完成订单（还车）
     */
    ResponseResult<Void> completeOrder(Long userId, String orderNo);

    /**
     * 取车
     */
    ResponseResult<Void> pickupVehicle(Long userId, String orderNo);

    /**
     * 还车
     */
    ResponseResult<Void> returnVehicle(Long userId, String orderNo);

    /**
     * 获取订单详情（无需认证）
     */
    ResponseResult<OrderDetailVO> getOrderDetailNoAuth(String orderNo);
} 